// 导入createSlice函数
import { createSlice } from "@reduxjs/toolkit";
// 导入ConfigProviderProps接口
import type { ConfigProviderProps } from "antd";
// 导入中文语言包
import zhCN from "antd/locale/zh_CN";
// 定义State接口，包含一个locale属性
interface State {
	locale: Locale;
}
// 定义changLocaleParams接口，包含一个payload属性
interface changLocaleParams {
	payload: Locale;
}
// 定义Locale类型，继承自ConfigProviderProps的locale属性
type Locale = ConfigProviderProps["locale"];
// 创建localeSlice，包含name、initialState和reducers
export const localeSlice = createSlice({
	name: "locale",
	// 初始状态，locale属性为中文语言包
	initialState: <State>{
		locale: zhCN
	},
	// 定义reducers，包含一个changLocale函数
	reducers: {
		// changLocale函数，接收state和action参数，将state的locale属性设置为action的payload属性
		changLocale(state: State, action: changLocaleParams) {
			state.locale = action.payload;
		}
	}
});

// 导出changLocale函数
export const { changLocale } = localeSlice.actions;

// 导出localeSlice的reducer
export default localeSlice.reducer;
